<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>
	<script type="text/javascript">
		// 其他类型转数字类型
		// 1、parseInt（） 转整数
		console.log("10")
		console.log(parseInt("10"))//10
		console.log(parseInt("10.99"))//10
		console.log(parseInt("10addwdfwew"))//10
		console.log(parseInt("adasdsa10"))//NaN
		console.log(parseInt("10.99asa"))//10

		// 2、parseFloat()	转小数
		console.log(parseFloat("9"))//9
		console.log(parseFloat("8.88"))//8.88
		console.log(parseFloat("8.88adsdwwx"))//8.88
		console.log(parseFloat("wwwwssw8.88"))//NaN

		// 3、Number()   转数字
		/*
			字符串：
				如果是纯数字，会转为对应的数字
				如果不是纯数字，转为NaN
				如果是空字符串或者空格，返回0
			布尔值：
				true --- 1		false ---- 0
			null：0
			undefined：NaN
		*/
		console.log(Number("10"))//10
		console.log(Number("10sadasdh"))//NaN
		console.log(Number(''))//0
		console.log(Number('   '))//0
		console.log(Number(true))//1
		console.log(Number(false))//0
		console.log(Number(null))//0
		console.log(Number(undefined))//NaN

		// 总结：转整数用parseInt，转小数用parseFloat
		// 如果转数字要求比较严格用Number

		// 其他类型转字符串
		// 1、变量.toString() 可以转进制 除了null和undefined会报错,其他都可以转
		let s1 = 100
		console.log(s1.toString())//100
		// 转二进制
		console.log(s1.toString(2))//1100100
		// 转八进制
		console.log(s1.toString(8))//144
		// 转十六进制
		console.log(s1.toString(16))//64

		console.log(true.toString())//true
		// console.log(null.toString()) 报错
		// console.log(undefined.toString()) 报错

		//2.String() 所有的数据类型都能转 不能转进制
		console.log(String(s1))//100
		console.log(String(null))//null
		console.log(String(undefined))//undefined
		console.log(String(false))//false

		//其他类型转Boolean true/false
		//Boolean
		/*
			数字类型里: 0和NaN是false
			字符串: 空字符串是false
			undefined和null: false
		*/
		console.log(Boolean(1))//true
		console.log(Boolean(0))//false
		console.log(Boolean("1"))//true
		console.log(Boolean(-1))//true
		console.log(Boolean("0"))//true
		console.log(Boolean(''))//false
		console.log(Boolean(' '))//true
		console.log(Boolean(null))//false
		console.log(Boolean(nudefined))//false
		console.log(Boolean(NaN))//false
	</script>
</body>
</html>